package com.mexcad.reports.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.lowagie.text.Cell;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Table;

public class AnexosMinutasEvaluacion {

	public static final Font NORMAL_FONT= FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL, Utilities.BLACK);
	public static final Font BOLD_FONT= FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD, Utilities.BLACK);
	
	public static SimpleDateFormat outFormateador = new SimpleDateFormat("dd/MM/yyyy");

	/*
	public static Document getRevisionPresupuestos(Document doc,String fecha, UsuariosForm usuariosForm, int anio, int cveEntidad) throws PDFDocumentException, DocumentException {
		Date dteActiveDate = null;

		try{
			dteActiveDate = outFormateador.parse(fecha );
		}
		catch (ParseException e){
			e.printStackTrace();
		}
		GrupoTrabajo gt = GrupoTrabajoDao.getGpoTrabajoByDate ( dteActiveDate );

		
		if(gt!=null ){
				
				 Minutas minuta= MinutasDAO.getMinutaByClaveGrupoAndEjercicio(gt.getId().getClaveGrupo(), anio);
				 PDFSecturTable pdfTable=null;
				 List<GpoTraEnt> listadoGruposEntidad= GpoTraEntDAO.getGruposEntidad(anio,gt.getId().getClaveGrupo());
				 for(int i=0;i<listadoGruposEntidad.size();++i){
					 Paragraph headerAnexo=new Paragraph ("");
					 	
					 GpoTraEnt gpoEntidad= listadoGruposEntidad.get(i);
					 
					 
					 
					 Usuarios usr = UsuariosDAO.getUsuarioByID(gpoEntidad.getId().getIdUser());
					 
					 CtcataId ctCata= new CtcataId();
					 ctCata.setCvclve(usr.getClaveTitulo());
					 ctCata.setCvnomb("CVETIT");
						
					 Ctcata obCat= CtCataDao.getCtCataByCompleteKey(ctCata);//
					 
					 obCat.getCvdesc();
					 
					 String estado = EntidadesDAO.getEntidadById(gpoEntidad.getId().getClaveEntidad()).getDescLarga();
					
					 String headerAnexos="El "+obCat.getCvdesc()+" " + usr.getNombres()+" "+usr.getApPaterno()+" "+usr.getApMaterno()+" ";
					 headerAnexos+=", present� el contenido y alcance de los proyectos correspondientes a las entidades federativas a su cargo, mismas que contaban ";
					 headerAnexos+=" con el presupuesto asignado, as� como con carta compromiso y C�dulas B�sicas de Informaci�n de Proyectos.\n\n";
					 
	
					 headerAnexo.add(new Chunk(headerAnexos,NORMAL_FONT));
					 headerAnexo.add(new Chunk("Acuerdos:\n\n",BOLD_FONT));
					 headerAnexos="Derivado del an�lisis realizado a cada uno de los proyectos presentados por cada Entidad";
					 headerAnexos+=" Federativa, el Grupo Trabajo de Evaluaci�n Interna determin� lo siguiente:\n\n";
					 headerAnexo.add(new Chunk(headerAnexos,NORMAL_FONT));
					 headerAnexo.add(new Chunk(estado+":\n\n",BOLD_FONT));
					 Solicitud sol = SolicitudDao.getSolicitudActivaByEntidadAndEjercicio( gpoEntidad.getId().getClaveEntidad(), anio );
						
					 List<SolicitudProyecto> listSolProy = SolProDao.getSolPro(gpoEntidad.getId().getClaveEntidad(), anio, sol.getId().getClaveSolicitud());
					 SolicitudProyecto solProy=null;
					 if(listSolProy!=null && listSolProy.size()>0){
						  solProy = listSolProy.get(listSolProy.size()-1);
						 
					 }
					 if(solProy !=null){
						 NotificacionesId idNot = new NotificacionesId();
						 idNot.setAnioEjercicio(anio);
						 idNot.setClaveEntidad(gpoEntidad.getId().getClaveEntidad());
						 idNot.setClaveGrupo(minuta.getId().getClaveGrupo());
						 idNot.setClaveMinuta(minuta.getId().getClaveMinuta());
						 idNot.setClaveSolicitud(solProy.getId().getClaveSolicitud());
						 System.out.println("\nanio:"+idNot.getAnioEjercicio()+", Entidad:"+idNot.getClaveEntidad()+
								 			"ClaveGrupo:"+idNot.getClaveGrupo()+", claveMinuta:"+idNot.getClaveMinuta()+", claveSol:"+idNot.getClaveSolicitud()+"\n");
						
						 ArrayList<Notificaciones> listadoNotif=NotificacionesDAO.getListNotificacionesById(idNot);
						 double totalEstatal=0.0;
						 
						 String []header =new String[]{"Proyecto", "Monto Federal","Monto Estatal", "Monto municipal","Total"};
						 float []tamCols =new float[]{2,1,1,1,1};
						     
						 	
						 List<DataType []> listadoDatos = new ArrayList<DataType []>();
						 if(listadoNotif!=null){
							 for(int k=0;k<listadoNotif.size();++k){
								 Notificaciones notif= listadoNotif.get(k);
								 ProyectoId idProy = new ProyectoId();
								 idProy.setAnioEjercicio(anio);
								 idProy.setClaveEntidad(gpoEntidad.getId().getClaveEntidad());
								 idProy.setClaveProyecto(notif.getId().getClaveProyecto());
								 Proyecto proy = ProyectoDao.getProyectoByKey(idProy);
								 
								 DataType []datos = new DataType[header.length];
								 datos[0]=new DataType();
								 datos[0].setAlignMode(Element.ALIGN_LEFT);
								 datos[0].setData(proy.getNombreProyecto());
								 datos[0].setDataType(DataType.STRING_TYPE);
								 
								 datos[1]=new DataType();
								 datos[1].setAlignMode(Element.ALIGN_RIGHT);
								 datos[1].setData(notif.getMontoAcepSectur());
								 datos[1].setDataType(DataType.CURRENCY_TYPE);
								
								 datos[2]=new DataType();
								 datos[2].setAlignMode(Element.ALIGN_RIGHT);
								 datos[2].setData(notif.getMontoAcepEstado());
								 datos[2].setDataType(DataType.CURRENCY_TYPE);
								 totalEstatal+=notif.getMontoAcepEstado();
								 
								 datos[3]=new DataType();
								 datos[3].setAlignMode(Element.ALIGN_RIGHT);
								 datos[3].setData(notif.getMontoAcepMunic());
								 datos[3].setDataType(DataType.CURRENCY_TYPE);
								 datos[4]=new DataType();
								 datos[4].setAlignMode(Element.ALIGN_RIGHT);
								 datos[4].setData(notif.getMontoAcepSectur()+notif.getMontoAcepEstado()+notif.getMontoAcepMunic());
								 datos[4].setDataType(DataType.CURRENCY_TYPE);
							
								 listadoDatos.add(datos);
							 }
						   }
						 	 double total=totalEstatal;
							 String cad= new NumberToLetterConverter().convertirLetras((int)totalEstatal);
							 totalEstatal = (totalEstatal-(int)totalEstatal)*100;
							 headerAnexos="Respecto a la petici�n de la Secretaria de Turismo del Estado de "+estado+", el GEI determin� aprobar recursos por un monto";
							 headerAnexos+=" de " +total +" ("+cad+" "+(int)totalEstatal+"/100 "+"), aprob� aplicar a los siguientes proyectos que coincidieron con los criterios de selecci�n y con la siguiente distribusci�n:\n\n";
							 
							 headerAnexo.add(new Chunk(headerAnexos,NORMAL_FONT));
							 doc.add(headerAnexo);
							 
							 pdfTable = new PDFSecturTable(tamCols,header,listadoDatos);
							 doc.add(pdfTable.getTable());
						 }
				 } 
				 doc.newPage();
				 Paragraph firmas=new Paragraph ("");
				 firmas.add(new Chunk("2. Asuntos Generales \n\n",BOLD_FONT));
				 firmas.add(new Chunk(minuta.getAsuntosGrales()+"\n\n",NORMAL_FONT));
				 String cadena="NO HABIENDO M�S ASUNTOS QUE TRATAR SE DI� POR TERMINADA LA PRESENTE SESI�N A LAS ";
				 cadena+=(minuta.getHoraFin()!=null?minuta.getHoraFin():" ")+"HORAS DEL D�A "+Constants.getFechaString(dteActiveDate)+" FIRMANDO LOS PRESENTES:\n\n";
				 firmas.add(new Chunk(cadena,NORMAL_FONT));
				 doc.add(firmas);	
				 List <Integrantes> lista = IntegrantesDao.getIntegrantesById(gt.getId().getClaveGrupo(),anio);
				 Table tablaFirmas = new Table(2);
				 tablaFirmas.setWidth(100);
				
				 Cell cell = new Cell("\n\n");
				 cell.setBorder(0);
				 cell.enableBorderSide(0);
				 cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
				 cell.setColspan(2);
				 tablaFirmas.addCell(cell);
				 
				 for(int i=0;i<lista.size();++i){
					 Integrantes integrante =lista.get(i);
					 Usuarios usr = UsuariosDAO.getUsuarioByID(integrante.getUsuarios().getIdUsuario());
					 CtcataId ctCata= new CtcataId();
					 ctCata.setCvclve(usr.getClaveTitulo());
					 ctCata.setCvnomb("CVETIT");
						
					 Ctcata obCat= CtCataDao.getCtCataByCompleteKey(ctCata);//;
					 cell = new Cell();
					 
					 if(integrante.getCtcata().getId().getCvclve()==1){
						 
						 cell.setBorder(0);
						 cell.enableBorderSide(0);
						 cell.add(new RtfPageNumber());
						 cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
						 cell.setColspan(2);
						 
						 
						 Paragraph parrafo=new Paragraph ("");
						 parrafo.add(new Chunk("___________________________________________\n",BOLD_FONT));
						 parrafo.add(new Chunk(obCat!=null?obCat.getCvdesc():" ",BOLD_FONT));
						 parrafo.add(new Chunk(usr.getNombres()+" "+usr.getApPaterno()+" "+usr.getApMaterno()+"\n\n",BOLD_FONT));
						 parrafo.add(new Chunk(integrante.getCtcata().getCvdesc()+"\n\n\n",BOLD_FONT));
						 
						 cell.add(parrafo);
						 
						 tablaFirmas.addCell(cell);
						 
						 
					 }else{
						 cell.setBorder(0);
						 cell.enableBorderSide(0);
						 cell.add(new RtfPageNumber());
						 cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
						 
						 
						 
						 Paragraph parrafo=new Paragraph ("");
						 parrafo.add(new Chunk("____________________________________\n",BOLD_FONT));
						 parrafo.add(new Chunk(obCat!=null?obCat.getCvdesc():" ",BOLD_FONT));
						 parrafo.add(new Chunk(usr.getNombres()+" "+usr.getApPaterno()+" "+usr.getApMaterno()+"\n\n",BOLD_FONT));
						 parrafo.add(new Chunk(integrante.getCtcata().getCvdesc()+"\n\n\n",BOLD_FONT));
						 
						 cell.add(parrafo);
						 
						 tablaFirmas.addCell(cell);
						 
					 }
					 
					 
				 }	
				 doc.add(tablaFirmas);
				 
		}
		return doc;
	}




	

	
	*/
	
	
}
